package com.itstyle.seckill.topic.ai;

import java.io.File;
import java.text.DecimalFormat;
import java.util.Scanner;

/**
 * @Auther: liuwenxiang
 * @Date: 2020/3/10 17:15
 * @Description:
 */
public class RepeatNumber {

    /*
     * 题目：有1、2、3、4个数字，能组成多少个互不相同且无重复数字的三位数？都是多少？
     */

    public static void main(String[] args) {

        // TODO 自动生成的方法存根
       /* Scanner scan =new Scanner(System.in);
        int sc = scan.nextInt();
        System.out.print(sc + "的算术平方根是：");
        DecimalFormat df = new DecimalFormat("#.000");
        System.out.println(df.format(SQR(sc)));*/

        File file = new File("/Users/liuwenxiang/z-demo");
        listAllFiles(file);

    }

    public static void listAllFiles(File file){
        File[] files = file.listFiles();
        for(int i=0;i<files.length;i++){
            if(files[i].isDirectory()){
                listAllFiles(files[i]);
                System.out.println("目录="+files[i].getName());
            }else{
                System.out.println("文件名="+files[i].getName());
            }
        }

    }

    public static void repeatNum(){
        int i=0;//百位上的数
        int j=0;//十位上的数
        int k=0;//个位上的数
        int t=0;//统计数字的个数

        for(i=1;i<=4;i++){
            for(j=1;j<=4;j++){
                for(k=1;k<=4;k++){
                    if(i!=j&&j!=k&&i!=k){
                        t+=1;
                        System.out.println(i*100+j*10+k);
                    }

                }
            }
        }
        System.out.println("数字的个数"+t);
    }

    /**
     * 递归函数原则：
     * 1.找到迭代规律
     * 2.设置出口条件
     */

    /**
     * 题目：1+2...+n
     * f(10)=f(9)+10
     * f(9)=f(8)+9
     * ....
     * f(1)=1
     * 即f(10)=10+9+...+f(1)
     * @param n
     * @return
     */
    public static  int add(int n){
        if(n==1){
            return 1;
        }else{
           return n+add(n-1);
        }
    }
    /**
     * 1+。。+x 结果为n，n已知，x未知，求x
     * @param x
     * @param n
     * @return
     */
    public static int sum(int x,int n){
        n=n-x;
        if(x>=n){
            return x;
        }
        return sum(x+1,n);
    }


    /**
     * n个台阶，每次跳一阶或二阶，有多少次跳法
     * @param n
     * @return
     */
    public static int Step(int n) {
        if(n <= 0) {
            return 0;
        }
        if(n == 1) {
            return 1;
        }
        if(n==2) {
            return 2;
        }
        else {
            return Step(n-1) + Step(n-2);
        }
    }



    /*public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner scan = new Scanner(System.in);

        DecimalFormat df = new DecimalFormat("#.000");
        int sc = scan.nextInt();
        System.out.print(sc + "的算术平方根是：");
        System.out.println(df.format(SQR(sc)));
    }*/

    public static double SQR(int a) {
        double x1 = 1, x2;
        x2 = x1 / 2.0 + a / (2 * x1);//牛顿迭代公式
        while (Math.abs(x2 - x1) > 1e-4) {
            x1 = x2;
            x2 = x1 / 2.0 + a / (2 * x1);
        }
        return x2;
    }









}
